package com.dd.controller;

import com.dd.model.AqiTrendChart;
import com.dd.service.AqiTrendChartService;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.stage.Stage;
import java.util.List;

/*`AqiTrendController` 是 JavaFX 应用中的一个控制器类，主要用于“空气质量趋势统计”页面的数据展示和交互。它的主要作用包括：

1. **初始化表格**：在 `initialize()` 方法中，将空气质量趋势数据（如编号、月份、数量）绑定到 TableView 的对应列上。
2. **加载数据**：通过 `AqiTrendChartService` 获取空气质量趋势数据，并将其显示在表格中。
3. **关闭窗口**：提供 `handleClose()` 方法，允许用户关闭当前趋势统计窗口。

**总结**：  
这个类就是“空气质量趋势统计页面”的控制器，负责把每个月的空气质量趋势数据加载并展示在表格里，并提供关闭窗口的功能。
*/
public class AqiTrendController {
    @FXML
    private TableView<AqiTrendChart> trendTable;
    @FXML
    private TableColumn<AqiTrendChart, Integer> idCol;
    @FXML
    private TableColumn<AqiTrendChart, String> monthCol;
    @FXML
    private TableColumn<AqiTrendChart, Integer> countCol;

    private final AqiTrendChartService trendChartService = new AqiTrendChartService();

    @FXML
    public void initialize() {
        idCol.setCellValueFactory(new PropertyValueFactory<>("id"));
        monthCol.setCellValueFactory(new PropertyValueFactory<>("month"));
        countCol.setCellValueFactory(new PropertyValueFactory<>("count"));
        loadTableData();
    }

    private void loadTableData() {
        List<AqiTrendChart> data = trendChartService.getAqiTrendChartList();
        ObservableList<AqiTrendChart> obsList = FXCollections.observableArrayList(data);
        trendTable.setItems(obsList);
    }

    @FXML
    private void handleClose() {
        Stage stage = (Stage) trendTable.getScene().getWindow();
        stage.close();
    }
}
